/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clases;

import clases.Cliente;
import java.io.*;
import java.net.Socket;
import java.util.Date;
import javax.swing.border.Border;


/**
 *
 * @author CasaVallejo
 */
public class Conexion implements Serializable{
    
    
    public Conexion(){ 
        
    }
    
    
    
    public String obtenerDatos(String solicitud){
        try{
            Socket skSocket=new Socket("localHost", 5000); 
            String datos;
            DataOutputStream flujo2=new DataOutputStream(skSocket.getOutputStream());
            flujo2.writeUTF(solicitud);
            flujo2.flush();
            //flujo2.close();
            
            DataInputStream flujo=new DataInputStream(skSocket.getInputStream());
            datos=flujo.readUTF();
            //flujo.close();
            
            skSocket.close();
            return datos;
        }
        catch(Exception e){
            System.out.println(e.getMessage());
            return null;
        }
    }
    public boolean enviarC(Cliente cliente){
        try{
            Socket skSocket=new Socket("localHost",5000);
            OutputStream ous=skSocket.getOutputStream();
            DataOutputStream dos=new DataOutputStream(new BufferedOutputStream(ous));    
            long fecha=cliente.getfecNac().getTime();
            String clienteS;
            clienteS=cliente.getNombre()+"|"+cliente.getApellido()+"|"+fecha+"|"+cliente.getDireccion()
                    +"|"+cliente.getCP()+"|"+cliente.getemail()+"|"+cliente.getTelefono()+"|"+cliente.getNomUsr()
                    +"|"+cliente.getPass()+"|"+cliente.getTipo()+"|"+cliente.getCb()+"|"+cliente.getCodTarjeta()
                    +"|"+cliente.getCodigo()+"|"+cliente.getTTarjeta();  
            dos.writeUTF("guardaC:"+clienteS);
            dos.flush();
            //dos.reset();
            dos.close();
            skSocket.close();
            return true;
            
        }
        catch(Exception e){
            System.out.println(e.getMessage());
            return false;
        }
        
    }
    
    public boolean enviarEvento(Evento evento){
        try{
            Socket skSocket=new Socket("localHost",5000);
            OutputStream ous=skSocket.getOutputStream();
            DataOutputStream dos=new DataOutputStream(new BufferedOutputStream(ous));    
            String eventoS;
            String secc="";
            long fecha=evento.getFecha().getTime();
            long hora=evento.getHora().getTime();
            eventoS=evento.getClave()+"|"+evento.getNombre()+"|"+evento.getForo()+"|"+evento.getCiudad()
                    +"|"+fecha+"|"+hora;
            for(int i=0;i<evento.getSecEvt().length;i++){
                secc+="|"+evento.getSecEvt()[i].getNomSec()+"|"+evento.getSecEvt()[i].getCantSec()+"|"+evento.getSecEvt()[i].getCostSec();
            }
            eventoS=eventoS+secc;
            dos.writeUTF("guardaE:"+eventoS);
            dos.flush();
            //dos.reset();
            dos.close();
            skSocket.close();
            return true;
            
        }
        catch(Exception e){
            System.out.println(e.getMessage());
            return false;
        }
    }
    public boolean modificarEvento(Evento evento){
        try{
            Socket skSocket=new Socket("localHost",5000);
            OutputStream ous=skSocket.getOutputStream();
            DataOutputStream dos=new DataOutputStream(new BufferedOutputStream(ous));    
            String eventoS;
            String secc="";
            long fecha=evento.getFecha().getTime();
            long hora=evento.getHora().getTime();
            eventoS=evento.getClave()+"|"+evento.getNombre()+"|"+evento.getForo()+"|"+evento.getCiudad()
                    +"|"+fecha+"|"+hora;
            for(int i=0;i<evento.getSecEvt().length;i++){
                secc+="|"+evento.getSecEvt()[i].getNomSec()+"|"+evento.getSecEvt()[i].getCantSec()+"|"+evento.getSecEvt()[i].getCostSec();
            }
            eventoS=eventoS+secc;
            dos.writeUTF("modificaEvento:"+eventoS);
            dos.flush();
            //dos.reset();
            dos.close();
            skSocket.close();
            return true;
            
        }
        catch(Exception e){
            System.out.println(e.getMessage());
            return false;
        }
    }
    
    
    public int enviarBoleto(Boleto boleto){
        try{
            Socket skSocket=new Socket("localHost",5000);
            OutputStream ous=skSocket.getOutputStream();
            DataOutputStream dos=new DataOutputStream(new BufferedOutputStream(ous));    
            String boletoS;
            long fecha=boleto.getFecCompra().getTime();
            boletoS= boleto.getClaveB()+"|"+boleto.getSeccion()+"|"+boleto.getFila()+"|"+boleto.getAsiento()
                    +"|"+boleto.getPrecio()+"|"+boleto.getClaveE()+"|"+boleto.getNomUsr()+"|"+fecha;
            dos.writeUTF("guardaB:"+boletoS);
            dos.flush();
            //dos.reset();
            dos.close();
            skSocket.close();
            return 1;
            
        }
        catch(Exception e){
            System.out.println(e.getMessage());
            return 0;
        }
        
    }
    
    public boolean borrarCliente(String nomUsr){
        try{
            Socket skSocket=new Socket("localHost",5000);
            OutputStream ous=skSocket.getOutputStream();
            DataOutputStream dos=new DataOutputStream(new BufferedOutputStream(ous));    
            dos.writeUTF("borrarAlCliente:"+nomUsr);
            dos.flush();
            dos.close();
            skSocket.close();
            return true;         
        }
        catch(Exception e){
            System.out.println(e.getMessage());
            return false;
        }
    }
    
    public boolean modificarCliente(Cliente cliente){
        try{
            Socket skSocket=new Socket("localHost",5000);
            OutputStream ous=skSocket.getOutputStream();
            DataOutputStream dos=new DataOutputStream(new BufferedOutputStream(ous)); 
            long fecha=cliente.getfecNac().getTime();
            String clienteS;
            clienteS=cliente.getNombre()+"|"+cliente.getApellido()+"|"+fecha+"|"+cliente.getDireccion()
                    +"|"+cliente.getCP()+"|"+cliente.getemail()+"|"+cliente.getTelefono()+"|"+cliente.getNomUsr()
                    +"|"+cliente.getPass()+"|"+cliente.getTipo()+"|"+cliente.getCb()+"|"+cliente.getCodTarjeta()
                    +"|"+cliente.getCodigo()+"|"+cliente.getTTarjeta();  
            dos.writeUTF("modificarAlCliente:"+clienteS);
            dos.flush();
            dos.close();
            skSocket.close();
            return true;         
        }
        catch(Exception e){
            System.out.println(e.getMessage());
            return false;
        }
    }
    
    
    
    public static void main(String args[]){
        
    }
            
}
